Technical Field
The present methods and systems relate to securing communications between a module and a network, and more particularly, to embedding a cryptographic unit within the module, where the module can use the cryptographic unit to securely derive and record private keys and perform public key infrastructure (PKI) operations.
Description of Related Art
The combination of “machine-to-machine” (M2M) communications and low-cost sensors, Internet connections, and processors is a promising and growing field. Among many potential benefits, M2M technologies allow the remote monitoring of people, assets, or a location where manual monitoring may not be economical. Many M2M applications significantly reduce costs by using automated monitoring instead of manual techniques. Prominent examples of M2M applications today include monitoring with vending machines, automobiles, alarm systems, and remote sensors. Fast growing markets for M2M applications today include tracking devices for shipping containers or pallets, health applications such as the remote monitoring of a person's glucose levels or heartbeat, monitoring of industrial equipment deployed in the field, and also security systems. Many M2M applications leverage either wired Internet connections or wireless connections, and both types of connections continue to grow rapidly. M2M communications may also be referred to as “the Internet of things” (IoT).
M2M communications can provide remote control over actuators that may be connected to a M2M device, such as turning on or off a power switch, locking or unlocking a door, adjusting a speed of a motor, or similar remote control. A decision to change or adjust an actuator associated with an M2M device can utilize one or a series of sensor measurements. An M2M device may also be referred to as a “wireless module” or also simply a module. As one example, a M2M device connected to an automobile can periodically report engine status to a remote server, and if the engine is operating outside specifications such as being too hot, including potentially an “alarm” condition, then temperature and an alarm code can be reported to a central server by the M2M device. The server can subsequently instruct the driver and/or a specified mechanic to investigate the engine for potential mechanical malfunctions or other causes. The previous example is just one of many possible applications for M2M technology, and as the costs for computer and networking hardware continue to decline, together with the growing ease of obtaining either wired or wireless Internet access for small form-factor devices, the number of economically favorable applications for M2M communications grows.
Many M2M applications can leverage wireless networking technologies. Wireless technologies such as wireless local area networks and wireless wide area networks have proliferated around the world over the past 15 years, and usage of these wireless networks is also expected to continue to grow. Wireless local area network (LAN) technologies include WiFi and wireless wide area network (WAN) technologies include 3rd Generation Partnership Project's (3GPP) 3rd Generation (3G) Universal Mobile Telecommunications System (UMTS) and 4th Generation (4G) Long-term Evolution (LTE), LTE Advanced, and the Institute of Electrical and Electronics Engineers' (IEEE) 802.16 standard, also known as WiMax. The use of wireless technologies with “machine-to-machine” communications creates new opportunities for the deployment of M2M modules in locations without fixed-wire Internet access, but also creates several new classes of problems that need to be solved.
Many of these problems relate to establishing security and trust between modules and a network in a manner that is both scalable and supportable over a relatively long operating lifetime of a module such as potentially 10 years or longer. Existing solutions to the problem of establishing security, such as installing a SIM card in the module or mobile phone (where the SIM card can include network access credentials), may not be efficient or feasible for M2M applications. Since M2M modules may be either (i) unattended, (ii) operating remotely, and/or (iii) traveling geographically or globally, consequently an end user or a module provider may not be able to feasibly or cost-effectively change a SIM card after the module initiates operation. A need exists in the art to allow for a deployed module to securely and automatically begin using either (i) new private and public keys (i.e. without human intervention such as swapping out a SIM card), or (ii) new network access credentials such as a new subscriber identity and shared secret key K.
Since the packets transmitted and received by a wireless module will likely traverse the public Internet for many applications, a need exists in the art to (i) prevent eavesdropping at intermediate points along the path of packets transmitted and received, (ii) allow endpoints to verify the identity of the source of packets received. A need exists in the art for a module and a server to leverage established public key infrastructure (PKI) techniques and algorithms. A need exists in the art for a module to securely derive and record PKI private keys in a manner that prevents exposure of the private key to third parties, including potentially software or firmware operating in a module or mobile phone. A need exists in the art for the private key to be securely recorded in a trusted environment protected by hardware, where the hardware recording a private key and associated cryptographic algorithms is compatible with existing and commonly deployed modules and form factors, such that new industry standards for hardware interfaces are not necessarily required. A need exists in the art for the trusted environment protected by hardware to be in a portable format, such that the portable format can readily be transported between entities such as a manufacturer, a module provider, separately from a module in which it can operate.
Multiple entities associated with a module may prefer for the module to have a certificate both (i) from a trusted certificate authority and (ii) recorded for a module public key and module identity used by the module. Consequently, a need exists in the art for a certificate authority to reliably trust that a public key submitted to the certificate authority for signature is genuine and trusted. In other words, third parties may only be able to trust a certificate from the certificate authority to the extent the certificate authority can trust that the private key associated with the public key remains secure. Therefore, a need exists in the art for a certificate authority to trust that private keys for modules with its certificates remain reasonably secure. Further, entities associated with a module, such as an end user or a module provider, may prefer that the private key for the module is not recorded by any other entity besides a trusted environment in the module, in order to maintain full control and accountability for the private key. Therefore, a need exists in the art for methods and systems such that a private key can be recorded solely within a trusted environment, where the trusted environment can comprise a cryptographic unit.
The wide variety of operating systems and versions of operating systems for modules without a UICC creates significant challenges for a manufacturer of a storage unit to easily enable communication between a module and a cryptographic unit, given the wide diversity of modules that are desired to be supported. Therefore, a need exists in the art for the a module and a cryptographic unit to communicate with each other via established and widely deployed standards, such that new software drivers do not need to be distributed in order to enable communication with a cryptographic unit. There exists a related need in the art, for modules that lack (i) a UICC or SIM card interface, but support (ii) removable storage media such as SD cards, to easily communicate with a cryptographic unit without requiring firmware updates.
In addition, the utilization of PKI technologies in modules can increase security, but a number of technical challenges must be addressed. These challenges increase if (A) a deployed module requires updated private/public key pairs after (B) operation begins for a module deployed into the field. The typical paradigm of “swapping out a SIM card” (which also depend on a pre-shared secret key Ki embedded in the card) with mobile phones may not be applicable or cost effective with modules, where swapping out the SIM card could be burdensome. Newer PKI technologies may offer a wide variety of algorithms for ciphering with public keys, and a need exists in the art for the utilization of new public and private keys to support the wide variety of algorithms, even after a module has been installed. In other words, a system should preferably both be highly secure and also flexible enough to adopt new security keys and standards. A need exists in the art for a scalable and secure method of associating a module identity with a module public key, when the module begins utilizing a new public key. A need exists in the art for a module to efficiently be able to utilize multiple public/private key pairs at the same time, such as with different service providers or different applications simultaneously.
Although securing communications between a module and a network can be accomplished through the use of cryptographic algorithms and private keys, the use of cryptographic algorithms including key derivation or key generation can required the use of random numbers with a high degree of information entropy. In other words, a system of security may only be as strong as the “randomness” of random numbers used to generate keys to secure the system. However, a trusted environment used by a computer or a module, such as on relatively small cards such as a UICC, SD card, or in an embedded integrated circuit on a circuit board may operate in an environment desirably relatively closed in order to enhance security. However, the relatively closed environment can reduce the available level of information entropy or randomness desired for the generation of random numbers. Therefore, a need exists in the art for methods and systems to provide a trusted environment with access to components in the trusted environment with a high level of information entropy or randomness for the generation of keys to secure communications. A need also exists in the art for the components used in the trusted environment to generate random numbers to leverage existing and widely deployed manufacturing techniques such that the components can readily be included and integrated into in the trusted environment in a small form factor such as a UICC, SD card, or embedded within an integrated circuit.
Sources of information entropy or randomness within a trusted environment, such as within an integrated circuit, for the creation of random numbers have encountered resistance in market acceptance. An example is the use of the RDSEED instruction in an Intel family of processors, where thermal noise in silicon is used in the generation of random numbers. A primary source of resistance for users of the trusted environment is that the source of information entropy is often highly dynamic and changing, such as measuring thermal noise within silicon for an integrated circuit. Externally auditing the values and source of the thermal noise or other sensors can be difficult because the values may constantly change. Consequently, it may not be feasible to reproduce the exact various noise levels at the time a random number is generated at a subsequent time after the random number is generated.
A need exists in the art such that a source of information entropy or noise used to generate a random number can optionally remain relatively static or fully and entirely re-created for auditing and analysis purposes. Thus, a need exists in the art for an option in a cryptographic unit where the complete state of the source of information entropy can be recorded, thereby allowing with the option for verification of the input state to support an audit or analysis of the system used to generate a random number. In this manner, users evaluating the source and “randomness” of the random numbers output can gain confidence in the system and thereby support market adoption. A need exists in the art for the same source of information entropy to also optionally and simply be continually changed, such as during normal operation and not during a period of external audit or analysis, such that random numbers output using the source of information entropy or noise can be trusted.
And other needs exist in the art as well, as the list recited above is not meant to be exhaustive but rather illustrative.